﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace Tateeda.ClinicalStudy.Base.Modules.Lookups {

    public class CTSubmitLookup : LookupBase {
        public static IEnumerable<SelectListItem> OfficialRole {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Study Chair", Value = "Study Chair"},
                           new SelectListItem {Text = "Study Director", Value = "Study Director"},
                           new SelectListItem {Text = "Study Principal Investigator", Value = "Study Principal Investigator"}
                       };
            }
        }
        //Study Chair/Study Director/Study Principal Investigator
        public static IEnumerable<SelectListItem> Role {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Principal Investigator", Value = "Principal Investigator"},
                           new SelectListItem {Text = "Site Sub-Investigator", Value = "Site Sub-Investigator"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> RecruitmentStatus {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Not yet recruiting", Value = "Not yet recruiting"},
                           new SelectListItem {Text = "Recruiting", Value = "Recruiting"},
                           new SelectListItem {Text = "Enrolling by invitation", Value = "Enrolling by invitation"},
                           new SelectListItem {Text = "Active, not recruiting", Value = "Active, not recruiting"},
                           new SelectListItem {Text = "Completed", Value = "Completed"},
                           new SelectListItem {Text = "Suspended", Value = "Suspended"},
                           new SelectListItem {Text = "Terminated", Value = "Terminated"},
                           new SelectListItem {Text = "Withdrawn", Value = "Withdrawn"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> Gender {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Both", Value = "Both"},
                           new SelectListItem {Text = "Female", Value = "Female"},
                           new SelectListItem {Text = "Male", Value = "Male"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> SamplingMethod {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Probability Sample", Value = "Probability Sample"},
                           new SelectListItem {Text = "Non-Probability Sample", Value = "Non-Probability Sample"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> ArmType {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Experimental", Value = "Experimental"},
                           new SelectListItem {Text = "Active Comparator", Value = "Active Comparator"},
                           new SelectListItem {Text = "Placebo Comparator", Value = "Placebo Comparator"},
                           new SelectListItem {Text = "Sham Comparator", Value = "Sham Comparator"},
                           new SelectListItem {Text = "No intervention", Value = "No intervention"},
                           new SelectListItem {Text = "Other", Value = "Other"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> InterventionType {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Drug", Value = "Drug"},
                           new SelectListItem {Text = "Device", Value = "Device"},
                           new SelectListItem {Text = "Procedure/Surgery", Value = "Procedure/Surgery"},
                           new SelectListItem {Text = "Radiation", Value = "Radiation"},
                           new SelectListItem {Text = "Behavioral", Value = "Behavioral"},
                           new SelectListItem {Text = "Genetic", Value = "Genetic"},
                           new SelectListItem {Text = "Dietary Supplement", Value = "Dietary Supplement"},
                           new SelectListItem {Text = "Other", Value = "Other"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> BiospecimenRetention {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "None Retained", Value = "None Retained"},
                           new SelectListItem {Text = "Samples With DNA", Value = "Samples With DNA"},
                           new SelectListItem {Text = "Samples Without DNA", Value = "Samples Without DNA"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> TimePerspective {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Prospective", Value = "Prospective"},
                           new SelectListItem {Text = "Retrospective", Value = "Retrospective"},
                           new SelectListItem {Text = "Cross-sectional", Value = "Cross-sectional"},
                           new SelectListItem {Text = "Other", Value = "Other"}
                       };
            }
        }
        public static IEnumerable<SelectListItem> ObservationalStudyModel {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Cohort", Value = "Cohort"},
                           new SelectListItem {Text = "Case-control", Value = "Case-control"},
                           new SelectListItem {Text = "Case-only", Value = "Case-only"},
                           new SelectListItem {Text = "Case-crossover", Value = "Case-crossover"},
                           new SelectListItem {Text = "Ecologic or community studies", Value = "Ecologic or community studies"},
                           new SelectListItem {Text = "Family-based", Value = "Family-based"},
                           new SelectListItem {Text = "Other ", Value = "Other "}
                       };
            }
        }

        public static IEnumerable<SelectListItem> Endpoint {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "N/A", Value = "N/A"},
                           new SelectListItem {Text = "Safety", Value = "Safety"},
                           new SelectListItem {Text = "Efficacy", Value = "Efficacy"},
                           new SelectListItem {Text = "Safety/Efficacy", Value = "Safety/Efficacy"},
                           new SelectListItem {Text = "Bio-equivalence", Value = "Bio-equivalence"},
                           new SelectListItem {Text = "Bio-availability", Value = "Bio-availability"},
                           new SelectListItem {Text = "Pharmacokinetics", Value = "Pharmacokinetics"},
                           new SelectListItem {Text = "Pharmacodynamics", Value = "Pharmacodynamics"},
                           new SelectListItem {Text = "Pharmacokinetics/dynamics", Value = "Pharmacokinetics/dynamics"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> Allocation {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "N/A", Value = "N/A"},
                           new SelectListItem {Text = "Randomized Controlled Trial", Value = "Randomized Controlled Trial"},
                           new SelectListItem {Text = "Nonrandomized Trial", Value = "Nonrandomized Trial"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> Masking {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Open", Value = "Open"},
                           new SelectListItem {Text = "Single Blind", Value = "Single Blind"},
                           new SelectListItem {Text = "Double Blind", Value = "Double Blind"},
                       };
            }
        }

        public static IEnumerable<SelectListItem> InterventionModel {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Single Group", Value = "Single Group"},
                           new SelectListItem {Text = "Parallel", Value = "Parallel"},
                           new SelectListItem {Text = "Cross-over", Value = "Cross-over"},
                           new SelectListItem {Text = "Factorial", Value = "Factorial"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> StudyPhase {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "N/A", Value = "N/A"},
                           new SelectListItem {Text = "Phase 0", Value = "Phase 0"},
                           new SelectListItem {Text = "Phase 1", Value = "Phase 1"},
                           new SelectListItem {Text = "Phase 1/Phase 2", Value = "Phase 1/Phase 2"},
                           new SelectListItem {Text = "Phase 2", Value = "Phase 2"},
                           new SelectListItem {Text = "Phase 2/Phase 3", Value = "Phase 2/Phase 3"},
                           new SelectListItem {Text = "Phase 3", Value = "Phase 3"},
                           new SelectListItem {Text = "Phase 4", Value = "Phase 4"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> PrimaryPurpose {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Treatment", Value = "Treatment"},
                           new SelectListItem {Text = "Prevention", Value = "Prevention"},
                           new SelectListItem {Text = "Diagnostic", Value = "Diagnostic"},
                           new SelectListItem {Text = "Supportive Care", Value = "Supportive Care"},
                           new SelectListItem {Text = "Screening", Value = "Screening"},
                           new SelectListItem {Text = "Health Services Research", Value = "Health Services Research"},
                           new SelectListItem {Text = "Basic Science", Value = "Basic Science"},
                           new SelectListItem {Text = "Other", Value = "Other"}
                       };
            }
        }
        public static IEnumerable<SelectListItem> ExpandedAccessStatus {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Available", Value = "Available"},
                           new SelectListItem {Text = "No longer available", Value = "No longer available"},
                           new SelectListItem {Text = "Temporarily not available", Value = "Temporarily not available"},
                           new SelectListItem {Text = "Approved for marketing", Value = "Approved for marketing"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> FollowupDateType {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Anticipated", Value = "Anticipated"},
                           new SelectListItem {Text = "Actual", Value = "Actual"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> Month {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "January", Value = "January"},
                           new SelectListItem {Text = "February", Value = "February"},
                           new SelectListItem {Text = "March", Value = "March"},
                           new SelectListItem {Text = "April", Value = "April"},
                           new SelectListItem {Text = "May", Value = "May"},
                           new SelectListItem {Text = "June", Value = "June"},
                           new SelectListItem {Text = "July", Value = "July"},
                           new SelectListItem {Text = "August", Value = "August"},
                           new SelectListItem {Text = "September", Value = "September"},
                           new SelectListItem {Text = "October", Value = "October"},
                           new SelectListItem {Text = "November", Value = "November"},
                           new SelectListItem {Text = "December", Value = "December"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> OverallRecruitmentStatus {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Not yet recruiting", Value = "Not yet recruiting"},
                           new SelectListItem {Text = "Recruiting", Value = "Recruiting"},
                           new SelectListItem {Text = "Enrolling by invitation", Value = "Enrolling by invitation"},
                           new SelectListItem {Text = "Active, not recruiting", Value = "Active, not recruiting"},
                           new SelectListItem {Text = "Completed", Value = "Completed"},
                           new SelectListItem {Text = "Suspended", Value = "Suspended"},
                           new SelectListItem {Text = "Terminated", Value = "Terminated"},
                           new SelectListItem {Text = "Withdrawn", Value = "Withdrawn"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> BoardApprovalStatus {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Request not yet submitted", Value = "Request not yet submitted"},
                           new SelectListItem {Text = "Submitted, pending", Value = "Submitted, pending"},
                           new SelectListItem {Text = "Submitted, approved", Value = "Submitted, approved"},
                           new SelectListItem {Text = "Submitted, exempt", Value = "Submitted, exempt"},
                           new SelectListItem {Text = "Submitted, denied", Value = "Submitted, denied"},
                           new SelectListItem {Text = "Submission not required", Value = "Submission not required"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> CTSIndGrantor {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "CDER", Value = "CDER"},
                           new SelectListItem {Text = "CBER", Value = "CBER"},
                           new SelectListItem {Text = "CDRH", Value = "CDRH"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> CTSYesNo {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "Yes", Value = "Yes"},
                           new SelectListItem {Text = "No", Value = "No"}
                       };
            }
        }

        public static IEnumerable<SelectListItem> CTSIdType {
            get {
                return new Collection<SelectListItem>
                       {
                           new SelectListItem {Text = "US NIH Grant Number", Value = "US NIH Grant Number"},
                           new SelectListItem {Text = "Other Grant/Funding Number", Value = "Other Grant/Funding Number"},
                           new SelectListItem {Text = "Registry Identifier", Value = "Registry Identifier"},
                           new SelectListItem {Text = "EudraCT Number", Value = "EudraCT Number"},
                           new SelectListItem {Text = "Other Identifier", Value = "Other Identifier"}
                       };
            }
        }

        public static ICollection<SelectListItem> CTSStudyTypes {
            get {
                return new Collection<SelectListItem>
                           {
                               new SelectListItem {Text = "Interventional", Value = "Interventional"},
                               new SelectListItem {Text = "Observational", Value = "Observational"},
                               new SelectListItem {Text = "Expanded Access", Value = "Expanded Access"}
                           };
            }
        }
    }
}